package com.whfc.ms.api.fse.service;

import com.whfc.common.result.ListData;
import com.whfc.common.result.PageData;
import com.whfc.fse.dto.FseBridgeDTO;
import com.whfc.fse.dto.FseBridgeDataDTO;
import com.whfc.fse.dto.FseBridgeDataLogDTO;
import com.whfc.fse.param.FseBridgeAddParam;
import com.whfc.fse.param.FseBridgeBindParam;
import com.whfc.fse.param.FseBridgeEditParam;
import com.whfc.fse.param.FseBridgeUnbindParam;

import java.util.Date;

/**
 * @Description 架桥机服务类
 * @Author hw
 * @Date 2021-06-01 17:39
 * @Version 1.0
 */
public interface MsFseBridgeService {

    /**
     * 架桥机列表(分页)
     *
     * @param deptId
     * @param keyword
     * @param bindFlag
     * @param netState
     * @param pageNum
     * @param pageSize
     * @return
     */
    PageData<FseBridgeDTO> list(Integer deptId, String keyword, Integer bindFlag, Integer netState, Integer pageNum, Integer pageSize);

    /**
     * 架桥机列表(不分页)
     *
     * @param deptId
     * @param keyword
     * @param bindFlag
     * @param netState
     * @return
     */
    ListData<FseBridgeDTO> list(Integer deptId, String keyword, Integer bindFlag, Integer netState);

    /**
     * 添加架桥机
     *
     * @param param
     */
    void add(FseBridgeAddParam param);

    /**
     * 修改架桥机
     *
     * @param param
     */
    void edit(FseBridgeEditParam param);

    /**
     * 删除架桥机
     *
     * @param bridgeId
     */
    void del(Integer bridgeId);

    /**
     * 绑定架桥机硬件
     *
     * @param param
     */
    void bind(FseBridgeBindParam param);

    /**
     * 解绑架桥机硬件
     *
     * @param param
     */
    void unbind(FseBridgeUnbindParam param);

    /**
     * 架桥机监测
     *
     * @param bridgeId
     * @return
     */
    FseBridgeDataDTO monitor(Integer bridgeId);

    /**
     * 乔架机详情
     *
     * @param bridgeId
     * @return
     */
    FseBridgeDTO details(Integer bridgeId);

    /**
     * 桥架机历史记录
     *
     * @param bridgeId
     * @param time
     * @return
     */
    ListData<FseBridgeDataLogDTO> bridgeLog(Integer bridgeId, Date time);
}
